## node-red如何连接modbus slave设备 ### 说明 我想在node-red中用流程图中配置modbus master主设备通过mocbus tcp rtu去联接modbus slave设备,如何配置呢? ### 步骤一:安装Modbus相关节点 1. 打开Node-RED编辑器(浏览器访问 http://<你的设备IP>:1880)。 2. 点击右上角菜单,选择“Manage palette(管理调色板)”。 3. 在“Install”标签页中搜索 `node-red-contrib-modbus`,点击“Install”安装。 ### 步骤二:添加Modbus TCP/RTU节点 1. 安装完成后,左侧会出现“modbus”类别。 2. 拖拽 `modbus-read` 或 `modbus-write` 节点到流程图中。 3. 双击节点,点击“Server”右侧的铅笔图标,新增Modbus服务器配置。 ### 步骤三:配置Modbus主设备(Master) - **连接类型**: - 如果是TCP,选择“TCP”,填写Slave设备的IP和端口(通常为502)。 - 如果是RTU(串口),选择“Serial”,填写串口设备(如`/dev/ttyUSB0`)、波特率、数据位、校验等参数。 - **Unit-Id**:填写目标Slave的地址(通常为1)。 - 其他参数按实际需求设置。 ### 步骤四:配置读写操作 - `modbus-read` 节点:设置功能码(如03读保持寄存器)、起始地址、长度、轮询间隔等。 - `modbus-write` 节点:设置功能码、目标地址、写入数据等。 #### Modbus-Read节点参数填写说明 - **名称**:自定义,便于识别。 - **主题(Topic)**:可留空或自定义(如用于消息分流时填写),一般默认即可。 - **Unit-Id**:填写目标 Modbus slave 设备的地址(通常为1,具体看你的设备设置)。 - **FC(功能码)**:选择你要执行的Modbus功能码,常用如下: - 1:读线圈(Coil Status) - 2:读离散输入(Input Status) - 3:读保持寄存器(Holding Registers,最常用) - 4:读输入寄存器(Input Registers) - **Address**:要读取的寄存器或线圈的起始地址(通常从0或1开始,具体看设备手册)。 - **Quantity**:读取的数量(如要读2个寄存器就填2)。 - **Poll Rate**:轮询周期,单位为毫秒(如1000表示每秒读取一次)。 举例(读取slave地址为1,保持寄存器,起始地址0,数量2,每秒轮询): - Unit-Id:1 - FC:3 - Address:0 - Quantity:2 - Poll Rate:1000 ### 步骤五:部署与调试 1. 连接节点,点击右上角“部署”。 2. 查看debug面板,确认数据是否正常收发。 ### 参考示例 ```text [modbus-read] → [debug] ``` ### 常见问题 - 确认物理连接和串口权限。 - TCP模式下防火墙需放行502端口。 - RTU模式下需正确配置串口参数。 如需更详细的配置说明,可参考[node-red-contrib-modbus官方文档](https://flows.nodered.org/node/node-red-contrib-modbus)